package cn.tedu.sso.api.config;

import cn.tedu.base.utils.UserContext;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.context.annotation.Bean;

public class DefaultFeignConfig {

    /*
    * 定义一个用来将用户信息加入服务间调用的请求的请求头中
    * 因为服务间调用没有走网关，所以服务间调用的请求中
    * 是不存在user-info的请求体的
    * */
    @Bean
    public RequestInterceptor UserInfoRequestInterceptor(){

        return new RequestInterceptor() {
            @Override
            public void apply(RequestTemplate requestTemplate) {
                String userInfo = UserContext.getUserInfo();
                //进行判断，如果userInfo不为空说明是登录了的
                //否则就是未登录或登录失效
                if (userInfo != null){
                    //将userInfo字段添加进服务间请求的请求头中
                    requestTemplate.header("user-info",userInfo);
                } else {
                    //响应为未登录
                    //Todo
                }
            }

        };

    }
}
